home *** CD-ROM | disk | FTP | other *** search
/ PC-Blue - MS DOS Public Domain Library / PC-Blue MS-DOS Public Domain Library - NYACC.iso / vol147 / flys.bas < prev    next >
Encoding:
BASIC Source File  |  1986-12-16  |  4.5 KB  |  179 lines

  1. 10 '*****************
  2. 20 '**     FLY     **
  3. 30 '*****************
  4. 40 '
  5. 50 CLEAR
  6. 52 ON KEY(10) GOSUB 9000: KEY(10) ON
  7. 60 GOSUB 1730
  8. 70 SCREEN 1
  9. 80 KEY OFF
  10. 90 CLS
  11. 100 COLOR 0,0
  12. 110 OPTION BASE 1
  13. 120 DEFINT X,Y
  14. 130 DIM FLY0(21),FLY1(21),FLY2(21)
  15. 140 DIM SWAT(714)
  16. 150 DIM X(3),Y(3)
  17. 160 DELAY=3000
  18. 170 '
  19. 180 ' Build the fly images
  20. 190 BODY$="c1u5be1d6r1u6bf1d5"
  21. 200 URWING$="c3bu3br1e3r1g3r1e3"
  22. 210 ULWING$="bg3bl7h3l1f3l1h3"
  23. 220 DRWING$="c3br6h3l1f3l1h3"
  24. 230 DLWING$="bl5g3l1e3l1g3"
  25. 240 DRAW BODY$+URWING$+ULWING$
  26. 250 DRAW "bd20br6"
  27. 260 DRAW BODY$+DRWING$+DLWING$
  28. 270 GET (131,91)-(152,103),FLY0
  29. 280 GET (151,91)-(172,103),FLY1
  30. 290 GET (151,105)-(172,117),FLY2
  31. 300 '
  32. 310 ' Build the swatter image
  33. 320 CLS
  34. 330 LINE (0,50)-(75,135),3,BF
  35. 340 FOR X = 5 TO 65 STEP 10
  36. 350 FOR Y = 55 TO 125 STEP 10
  37. 360 LINE (X,Y)-(X+5,Y+5),0,BF
  38. 370 NEXT Y,X
  39. 380 FOR Y = 106 TO 135
  40. 390 IF Y < 111 THEN CLR=3 ELSE CLR=0
  41. 400 DRAW "c=clr; bm0,=y; m+25,25 m+25,0 m+25,-25"
  42. 410 NEXT Y
  43. 420 LINE (30,136)-(45,199),1,BF
  44. 430 GET (0,50)-(75,199),SWAT
  45. 440 '
  46. 450 ' Draw the screen border
  47. 460 CLS
  48. 470 LINE(0,0)-(319,199),2,BF
  49. 480 LINE(9,9)-(310,190),3,BF
  50. 490 '
  51. 500 ' Next fly appears
  52. 510 LINE(15,15)-(304,184),0,BF
  53. 520 FOR I = 1 TO 7+5*RND
  54. 530 FLY=INT(3*RND+1)
  55. 540 BUZZ=0
  56. 550 SOUND 47,0
  57. 560 SOUND 63+7*RND,999
  58. 570 WHILE BUZZ < DELAY
  59. 580 PUT(74*FLY,67),FLY1,PSET
  60. 590 PUT(74*FLY,67),FLY2,PSET
  61. 600 BUZZ=BUZZ+99
  62. 610 WEND
  63. 620 SOUND 47,0
  64. 630 PUT(74*FLY,67),FLY0,PSET
  65. 640 NEXT I
  66. 650 '
  67. 660 ' Swatters schwaapf onto screen
  68. 670 FOR SWIPE = 1 TO 3
  69. 680 SOUND 999,1
  70. 690 PUT (87*SWIPE-51,35),SWAT
  71. 700 NEXT SWIPE
  72. 710 '
  73. 720 ' How well did you follow the fly?
  74. 730 K$ = INKEY$
  75. 740 IF K$ <> "" THEN 730
  76. 750 LOCATE 3,7
  77. 760 PRINT "Check which swatter (1,2,3) ?
  78. 770 K$=INKEY$
  79. 780 IF K$ = "" THEN 770
  80. 790 IF K$<>"1" AND K$<>"2" AND K$<>"3" THEN 770
  81. 800 GUESS=VAL(K$)
  82. 810 LINE (87*GUESS-51,35)-(87*GUESS+24,184),0,BF
  83. 820 IF GUESS <> FLY THEN 1260
  84. 830 '
  85. 840 ' Another one bytes the dust
  86. 850 DELAY=.7370001*DELAY
  87. 860 GOSUB 1490
  88. 870 LOCATE 3,7
  89. 880 PRINT "GOT IT !!!";TAB(37);
  90. 890 SPOT=74*GUESS+9
  91. 900 FOR I = 0 TO 40
  92. 910 FREQ=99*SIN(2.1-I/17)^3+678
  93. 920 SOUND 99,0
  94. 930 SOUND FREQ,2
  95. 940 IF I MOD 3 = 0 THEN DRAW "bm=spot;,67"
  96. 950 CLR=INT(3*RND+1)
  97. 960 DX=INT(9*RND-4)
  98. 970 DY=INT(9*RND-4)
  99. 980 DRAW "c=clr; m+=dx;,=dy;"
  100. 990 NEXT I
  101. 1000 LINE (15,15)-(304,184),0,BF
  102. 1010 IF RANK=99 THEN 1620
  103. 1020 IF RANK <> 11 THEN 1100
  104. 1030 '
  105. 1040 ' You made it past the first level of proficiency
  106. 1050 RANK=1
  107. 1060 LINE (15,15)-(304,184),0,BF
  108. 1070 LOCATE 12,4
  109. 1080 PRINT "YOU JUST MADE 'SENIOR DE-BUGGER'!!!"
  110. 1090 PLAY"MF O3 T200 L5 MS cde.cffcd.cde.cffcd..."
  111. 1100 IF RANK <> 12 THEN 1180
  112. 1110 '
  113. 1120 ' You made it past the second level of proficiency
  114. 1130 RANK=2
  115. 1140 LINE (15,15)-(304,184),0,BF
  116. 1150 LOCATE 12,4
  117. 1160 PRINT "WOW! What a professional! Buzz on!";
  118. 1170 PLAY"MF O3 T200 L5 MS ccg.ccg.efgedccffcd..."
  119. 1180 LINE (15,15)-(304,184),0,BF
  120. 1190 LOCATE 12,4
  121. 1200 PRINT "Oh oh! Here comes a faster fly ...";
  122. 1210 FOR I = 1 TO 999
  123. 1220 NEXT I
  124. 1230 GOTO 510
  125. 1240 '
  126. 1250 ' missed it
  127. 1260 DELAY=1.47*DELAY
  128. 1270 IF DELAY > 3000 THEN DELAY=3000
  129. 1280 GOSUB 1490
  130. 1290 LINE (87*FLY-51,35)-(87*FLY+24,184),0,BF
  131. 1300 LOCATE 3,7
  132. 1310 PRINT "Whoops, it got away.";TAB(37);
  133. 1320 SOUND 57,47
  134. 1330 FOR I = 1 TO 100
  135. 1340 PUT (74*FLY,67),FLY1,PSET
  136. 1350 PUT (74*FLY,67),FLY2,PSET
  137. 1360 NEXT I
  138. 1370 LINE (15,15)-(304,184),0,BF
  139. 1380 LOCATE 12,7
  140. 1390 IF DELAY = 3000 THEN MISS$="Here comes another one ..."
  141. 1400 IF DELAY < 3000 THEN MISS$="Here comes a slower fly ..."
  142. 1410 PRINT MISS$;
  143. 1420 IF SPEED < 9000 THEN RANK=1
  144. 1430 IF SPEED < 8000 THEN RANK=0
  145. 1440 FOR I = 1 TO 999
  146. 1450 NEXT I
  147. 1460 GOTO 510
  148. 1470 '
  149. 1480 ' Compute score and rank
  150. 1490 SPEED=(3000-DELAY)*10/3
  151. 1500 IF SPEED < 0 THEN SPEED=0
  152. 1510 LOCATE 25,5
  153. 1520 PRINT USING "SPEED = ####";SPEED;
  154. 1530 IF SPEED > RECORD THEN RECORD=SPEED
  155. 1540 LOCATE 25,22
  156. 1550 PRINT USING "RECORD = ####";RECORD;
  157. 1560 IF SPEED > 8000 AND RANK < 1 THEN RANK=11
  158. 1570 IF SPEED > 9000 AND RANK < 2 THEN RANK=12
  159. 1580 IF SPEED > 9999 THEN RANK=99
  160. 1590 RETURN
  161. 1600 '
  162. 1610 ' best score possible!
  163. 1620 LOCATE 10,5
  164. 1630 PRINT "YOU DID IT!!! NO BUGS LEFT!!!"
  165. 1640 LOCATE 12,5
  166. 1650 PRINT "Welcome to the S.W.A.T. team !"
  167. 1660 PLAY "T169 L9 MS abcdefgacegecacgfedfdfdgdccedabbcaegfc"
  168. 1670 BGD = INT(RND * 6)
  169. 1680 PLT = INT(RND * 2)
  170. 1690 COLOR BGD,PLT
  171. 1700 GOTO 1660
  172. 1710 '
  173. 1720 ' Subroutine, reset random number sequence
  174. 1730 RANDOMIZE VAL(MID$(TIME$,4,2) + RIGHT$(TIME$,2))
  175. 1740 RETURN
  176. 9000 CHAIN "MENU"
  177. 9010 RETURN
  178. 9999 END
  179.